B. Connors and L. Lacko
Quantitative Assessment Methods Section, Pacific Region, DFO
2020-08-14
This document briefly describes analyses of COVID-19 associated change in landings in the integrated groundfish fishery in Pacific Canada.
Data for these analyses were queried from GFFOS, a groundfsh-specific view of the Pacific Regional Fishery Operations System (FOS) database. Groundfish fisheries include the directed Rockfish, Spiny Dogfish, Lingcod, Halibut, Sablefish, and Trawl fisheries in Pacific waters (Figure 1). Official catch estimates were derived from the ratio of total weight landed from the dockside monitoring program to the total of all retained catch weights from the logbook program.
All code and associated data to reproduce this document can be found on Github here.
Figure 1. Pacific Canada Fishery Management Areas.
library(tidyverse)
library(dplyr)
library(ggsidekick)
library(rstanarm)
library(lme4)
catch_effort <- read.csv("CatchByMonthGear.csv")
catch_effort$log_land <- log(catch_effort$landed_kg)
catch_effort$month <- as.factor(catch_effort$month)
catch_effort$month_n <- as.numeric(catch_effort$month)
landed_spp <- catch_effort %>%
group_by(SPECIES_COMMON_NAME) %>%
dplyr::summarise(landings = sum(landed_kg))%>%
arrange(desc(landings))%>%
as.data.frame()
landed_spp[1:20,]
## SPECIES_COMMON_NAME landings
## 1 PACIFIC HAKE 635112083
## 2 ARROWTOOTH FLOUNDER 80057280
## 3 WALLEYE POLLOCK 42660268
## 4 YELLOWTAIL ROCKFISH 36644981
## 5 PACIFIC OCEAN PERCH 36439309
## 6 PACIFIC HALIBUT 33903552
## 7 SABLEFISH 20220532
## 8 WIDOW ROCKFISH 18045929
## 9 DOVER SOLE 14638035
## 10 SILVERGRAY ROCKFISH 14112718
## 11 LINGCOD 12793192
## 12 YELLOWMOUTH ROCKFISH 11776823
## 13 PACIFIC COD 9548460
## 14 ROUGHEYE/BLACKSPOTTED ROCKFISH COMPLEX 7890286
## 15 CANARY ROCKFISH 7553248
## 16 REDSTRIPE ROCKFISH 6285564
## 17 PETRALE SOLE 6032077
## 18 ENGLISH SOLE 5396784
## 19 SOUTHERN ROCK SOLE 5034459
## 20 BIG SKATE 3837136
Wow that is a lot of Hake fish fingers.
agg_landed_spp <- catch_effort %>%
group_by(year, month) %>%
summarise(landings = sum(landed_kg), n = n())%>%
as.data.frame()
ggplot(agg_landed_spp, aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()
Landings clearly vary over the course of the year with peak landings typically occurring over the summer. There is no uber obvious decline in landings in the spring/summer of 2020 coincident with COVID (note that landings in July should be interpreted with caution due to potentially incomplete reporting). But landings are dominated by Hake, so let’s look at a few of the most commonly landed species individually.
ind_landed_spp <- catch_effort %>%
group_by(year, month,SPECIES_COMMON_NAME) %>%
summarise(landings = sum(landed_kg))%>%
as.data.frame()
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="PACIFIC HAKE",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Hake")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="ARROWTOOTH FLOUNDER",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Arrowtooth")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="WALLEYE POLLOCK",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Pollock")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="YELLOWTAIL ROCKFISH",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Yellowtail")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="PACIFIC OCEAN PERCH",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Perch")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="PACIFIC HALIBUT",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Halibut")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="SABLEFISH",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Sablefish")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="DOVER SOLE",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Dover sole")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="WIDOW ROCKFISH",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Widow rockfish")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="SILVERGRAY ROCKFISH",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Silvergrey rockfish")
No super obvious COVID associated reduction in landings jump out from these figures, but if your squint it looks like landings of Halibut, Sablefish and Lingcod are down a bit since beginning of COVID, maybe?.
Let’s actually test for a COVID “effect”.
We can test for a COVID lockdown effect on landings by fitting a linear mixed effects model of (log) landings as a function of gear type (landings vary by gear type), and whether or not landings occurred during the COVID lockdown. In this case I have subsetted the data to only consider the top ten species in landings, and to only consider the same period of time each year (March to July, inclusive), so in effect we are asking: “Were landings different in 2020 than they were during the same time periods during the previous 10 years?”"
I specified year and species as random effects (random intercepts; i.e., landings vary by year and species) and also allowed the COVID effect to vary by species (random slope). I fit this model in a Bayesian estimation framework using STAN so as to deal with singularity issues (over fitting?) when fit in a Maximum Likelihood framework, plus we can get a full posterior distribution for the random effects. There are admittedly many other ways to think about testing for a COVID effect, this is just a very simple first pass.
Here is a call to fit the model and then summary of model fit.
covid_model <- stan_lmer(log(landed_kg) ~ 0 + gear + covid + (1|year) + (covid|SPECIES_COMMON_NAME),
data = covid_period)
##
## SAMPLING FOR MODEL 'continuous' NOW (CHAIN 1).
## Chain 1:
## Chain 1: Gradient evaluation took 0 seconds
## Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 1: Adjust your expectations accordingly!
## Chain 1:
## Chain 1:
## Chain 1: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 1: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 1: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 1: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 1: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 1: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 1: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 1: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 1: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 1: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 1: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 1: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 1:
## Chain 1: Elapsed Time: 1.79 seconds (Warm-up)
## Chain 1: 1.484 seconds (Sampling)
## Chain 1: 3.274 seconds (Total)
## Chain 1:
##
## SAMPLING FOR MODEL 'continuous' NOW (CHAIN 2).
## Chain 2:
## Chain 2: Gradient evaluation took 0 seconds
## Chain 2: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 2: Adjust your expectations accordingly!
## Chain 2:
## Chain 2:
## Chain 2: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 2: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 2: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 2: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 2: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 2: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 2: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 2: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 2: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 2: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 2: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 2: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 2:
## Chain 2: Elapsed Time: 1.641 seconds (Warm-up)
## Chain 2: 0.931 seconds (Sampling)
## Chain 2: 2.572 seconds (Total)
## Chain 2:
##
## SAMPLING FOR MODEL 'continuous' NOW (CHAIN 3).
## Chain 3:
## Chain 3: Gradient evaluation took 0 seconds
## Chain 3: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 3: Adjust your expectations accordingly!
## Chain 3:
## Chain 3:
## Chain 3: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 3: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 3: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 3: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 3: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 3: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 3: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 3: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 3: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 3: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 3: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 3: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 3:
## Chain 3: Elapsed Time: 1.829 seconds (Warm-up)
## Chain 3: 0.648 seconds (Sampling)
## Chain 3: 2.477 seconds (Total)
## Chain 3:
##
## SAMPLING FOR MODEL 'continuous' NOW (CHAIN 4).
## Chain 4:
## Chain 4: Gradient evaluation took 0 seconds
## Chain 4: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 4: Adjust your expectations accordingly!
## Chain 4:
## Chain 4:
## Chain 4: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 4: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 4: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 4: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 4: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 4: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 4: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 4: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 4: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 4: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 4: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 4: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 4:
## Chain 4: Elapsed Time: 1.604 seconds (Warm-up)
## Chain 4: 1.231 seconds (Sampling)
## Chain 4: 2.835 seconds (Total)
## Chain 4:
summary(covid_model)
##
## Model Info:
##
## function: stan_lmer
## family: gaussian [identity]
## formula: log(landed_kg) ~ 0 + gear + covid + (1 | year) + (covid | SPECIES_COMMON_NAME)
## algorithm: sampling
## priors: see help('prior_summary')
## sample: 4000 (posterior sample size)
## observations: 146
## groups: year (10), SPECIES_COMMON_NAME (10)
##
## Estimates:
## mean sd 2.5%
## gearBOTTOM TRAWL 10.4 0.7 9.0
## gearHOOK AND LINE 6.8 0.7 5.2
## gearMIDWATER TRAWL 9.5 0.7 8.0
## gearTRAP 8.3 1.4 5.5
## gearUNSPECIFIED 4.7 1.0 2.8
## covid 0.2 1.2 -2.2
## b[(Intercept) year:2011] 0.1 0.5 -0.8
## b[(Intercept) year:2012] 0.2 0.5 -0.7
## b[(Intercept) year:2013] -0.1 0.5 -1.3
## b[(Intercept) year:2014] 0.0 0.5 -0.9
## b[(Intercept) year:2015] 0.5 0.6 -0.3
## b[(Intercept) year:2016] -0.3 0.6 -1.7
## b[(Intercept) year:2017] -0.3 0.5 -1.4
## b[(Intercept) year:2018] 0.2 0.6 -0.8
## b[(Intercept) year:2019] -0.2 0.5 -1.5
## b[(Intercept) year:2020] 0.0 0.7 -1.5
## b[(Intercept) SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] -0.4 0.7 -1.8
## b[covid SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] -0.4 1.0 -2.9
## b[(Intercept) SPECIES_COMMON_NAME:DOVER_SOLE] -0.7 0.9 -2.7
## b[covid SPECIES_COMMON_NAME:DOVER_SOLE] 0.3 1.2 -1.8
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HAKE] 1.7 1.1 -0.1
## b[covid SPECIES_COMMON_NAME:PACIFIC_HAKE] 0.1 1.4 -2.9
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HALIBUT] -0.2 0.8 -1.8
## b[covid SPECIES_COMMON_NAME:PACIFIC_HALIBUT] 0.6 1.3 -1.3
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] -0.1 0.7 -1.5
## b[covid SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] 0.0 1.2 -2.5
## b[(Intercept) SPECIES_COMMON_NAME:SABLEFISH] 0.4 0.7 -0.9
## b[covid SPECIES_COMMON_NAME:SABLEFISH] 0.1 1.0 -2.0
## b[(Intercept) SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 0.5 0.7 -0.7
## b[covid SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] -0.2 1.1 -2.9
## b[(Intercept) SPECIES_COMMON_NAME:WALLEYE_POLLOCK] -0.5 0.9 -2.6
## b[covid SPECIES_COMMON_NAME:WALLEYE_POLLOCK] -0.1 1.0 -2.4
## b[(Intercept) SPECIES_COMMON_NAME:WIDOW_ROCKFISH] -0.6 0.8 -2.4
## b[covid SPECIES_COMMON_NAME:WIDOW_ROCKFISH] 0.0 1.1 -2.3
## b[(Intercept) SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] 0.3 0.8 -1.1
## b[covid SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] -0.2 1.1 -2.9
## sigma 3.2 0.2 2.9
## Sigma[year:(Intercept),(Intercept)] 0.5 0.7 0.0
## Sigma[SPECIES_COMMON_NAME:(Intercept),(Intercept)] 1.4 1.5 0.0
## Sigma[SPECIES_COMMON_NAME:covid,(Intercept)] -0.2 1.2 -2.9
## Sigma[SPECIES_COMMON_NAME:covid,covid] 1.7 3.0 0.0
## mean_PPD 8.6 0.4 7.9
## log-posterior -442.4 6.3 -455.0
## 25% 50% 75%
## gearBOTTOM TRAWL 10.0 10.4 10.8
## gearHOOK AND LINE 6.3 6.8 7.3
## gearMIDWATER TRAWL 9.0 9.5 9.9
## gearTRAP 7.4 8.3 9.2
## gearUNSPECIFIED 4.0 4.6 5.3
## covid -0.6 0.2 1.0
## b[(Intercept) year:2011] -0.1 0.1 0.4
## b[(Intercept) year:2012] -0.1 0.1 0.4
## b[(Intercept) year:2013] -0.3 0.0 0.1
## b[(Intercept) year:2014] -0.2 0.0 0.2
## b[(Intercept) year:2015] 0.0 0.3 0.8
## b[(Intercept) year:2016] -0.5 -0.2 0.0
## b[(Intercept) year:2017] -0.5 -0.2 0.0
## b[(Intercept) year:2018] -0.1 0.1 0.5
## b[(Intercept) year:2019] -0.4 -0.1 0.1
## b[(Intercept) year:2020] -0.3 0.0 0.3
## b[(Intercept) SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] -0.8 -0.4 0.0
## b[covid SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] -0.9 -0.2 0.1
## b[(Intercept) SPECIES_COMMON_NAME:DOVER_SOLE] -1.3 -0.6 -0.1
## b[covid SPECIES_COMMON_NAME:DOVER_SOLE] -0.3 0.1 0.7
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HAKE] 0.8 1.6 2.4
## b[covid SPECIES_COMMON_NAME:PACIFIC_HAKE] -0.6 0.0 0.7
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HALIBUT] -0.7 -0.2 0.2
## b[covid SPECIES_COMMON_NAME:PACIFIC_HALIBUT] -0.1 0.3 1.0
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] -0.5 -0.1 0.3
## b[covid SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] -0.5 0.0 0.4
## b[(Intercept) SPECIES_COMMON_NAME:SABLEFISH] -0.1 0.3 0.9
## b[covid SPECIES_COMMON_NAME:SABLEFISH] -0.3 0.0 0.5
## b[(Intercept) SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 0.0 0.5 1.0
## b[covid SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] -0.6 -0.1 0.3
## b[(Intercept) SPECIES_COMMON_NAME:WALLEYE_POLLOCK] -1.0 -0.4 0.1
## b[covid SPECIES_COMMON_NAME:WALLEYE_POLLOCK] -0.5 0.0 0.3
## b[(Intercept) SPECIES_COMMON_NAME:WIDOW_ROCKFISH] -1.1 -0.5 0.0
## b[covid SPECIES_COMMON_NAME:WIDOW_ROCKFISH] -0.5 0.0 0.5
## b[(Intercept) SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] -0.1 0.2 0.8
## b[covid SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] -0.6 -0.1 0.3
## sigma 3.1 3.2 3.4
## Sigma[year:(Intercept),(Intercept)] 0.1 0.2 0.6
## Sigma[SPECIES_COMMON_NAME:(Intercept),(Intercept)] 0.5 1.1 1.9
## Sigma[SPECIES_COMMON_NAME:covid,(Intercept)] -0.4 0.0 0.2
## Sigma[SPECIES_COMMON_NAME:covid,covid] 0.2 0.7 2.0
## mean_PPD 8.4 8.6 8.9
## log-posterior -446.6 -442.0 -438.0
## 97.5%
## gearBOTTOM TRAWL 11.7
## gearHOOK AND LINE 8.2
## gearMIDWATER TRAWL 10.8
## gearTRAP 11.1
## gearUNSPECIFIED 6.5
## covid 2.7
## b[(Intercept) year:2011] 1.3
## b[(Intercept) year:2012] 1.4
## b[(Intercept) year:2013] 0.9
## b[(Intercept) year:2014] 1.0
## b[(Intercept) year:2015] 2.0
## b[(Intercept) year:2016] 0.6
## b[(Intercept) year:2017] 0.6
## b[(Intercept) year:2018] 1.8
## b[(Intercept) year:2019] 0.7
## b[(Intercept) year:2020] 1.4
## b[(Intercept) SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] 0.9
## b[covid SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] 1.2
## b[(Intercept) SPECIES_COMMON_NAME:DOVER_SOLE] 0.7
## b[covid SPECIES_COMMON_NAME:DOVER_SOLE] 3.3
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HAKE] 4.0
## b[covid SPECIES_COMMON_NAME:PACIFIC_HAKE] 3.0
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HALIBUT] 1.2
## b[covid SPECIES_COMMON_NAME:PACIFIC_HALIBUT] 4.2
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] 1.5
## b[covid SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] 2.4
## b[(Intercept) SPECIES_COMMON_NAME:SABLEFISH] 2.1
## b[covid SPECIES_COMMON_NAME:SABLEFISH] 2.3
## b[(Intercept) SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 2.1
## b[covid SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 1.7
## b[(Intercept) SPECIES_COMMON_NAME:WALLEYE_POLLOCK] 1.1
## b[covid SPECIES_COMMON_NAME:WALLEYE_POLLOCK] 2.0
## b[(Intercept) SPECIES_COMMON_NAME:WIDOW_ROCKFISH] 0.9
## b[covid SPECIES_COMMON_NAME:WIDOW_ROCKFISH] 2.4
## b[(Intercept) SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] 2.1
## b[covid SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] 1.7
## sigma 3.7
## Sigma[year:(Intercept),(Intercept)] 2.4
## Sigma[SPECIES_COMMON_NAME:(Intercept),(Intercept)] 5.3
## Sigma[SPECIES_COMMON_NAME:covid,(Intercept)] 1.6
## Sigma[SPECIES_COMMON_NAME:covid,covid] 9.3
## mean_PPD 9.4
## log-posterior -430.9
##
## Diagnostics:
## mcse Rhat n_eff
## gearBOTTOM TRAWL 0.0 1.0 2073
## gearHOOK AND LINE 0.0 1.0 2128
## gearMIDWATER TRAWL 0.0 1.0 1909
## gearTRAP 0.0 1.0 4419
## gearUNSPECIFIED 0.0 1.0 2657
## covid 0.0 1.0 2707
## b[(Intercept) year:2011] 0.0 1.0 4169
## b[(Intercept) year:2012] 0.0 1.0 3197
## b[(Intercept) year:2013] 0.0 1.0 4196
## b[(Intercept) year:2014] 0.0 1.0 3764
## b[(Intercept) year:2015] 0.0 1.0 2124
## b[(Intercept) year:2016] 0.0 1.0 3509
## b[(Intercept) year:2017] 0.0 1.0 2955
## b[(Intercept) year:2018] 0.0 1.0 3370
## b[(Intercept) year:2019] 0.0 1.0 3977
## b[(Intercept) year:2020] 0.0 1.0 3041
## b[(Intercept) SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] 0.0 1.0 2476
## b[covid SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] 0.0 1.0 3318
## b[(Intercept) SPECIES_COMMON_NAME:DOVER_SOLE] 0.0 1.0 2719
## b[covid SPECIES_COMMON_NAME:DOVER_SOLE] 0.0 1.0 3376
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HAKE] 0.0 1.0 952
## b[covid SPECIES_COMMON_NAME:PACIFIC_HAKE] 0.0 1.0 3943
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HALIBUT] 0.0 1.0 3268
## b[covid SPECIES_COMMON_NAME:PACIFIC_HALIBUT] 0.0 1.0 2879
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] 0.0 1.0 3266
## b[covid SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] 0.0 1.0 3567
## b[(Intercept) SPECIES_COMMON_NAME:SABLEFISH] 0.0 1.0 2395
## b[covid SPECIES_COMMON_NAME:SABLEFISH] 0.0 1.0 4284
## b[(Intercept) SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 0.0 1.0 2273
## b[covid SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 0.0 1.0 3882
## b[(Intercept) SPECIES_COMMON_NAME:WALLEYE_POLLOCK] 0.0 1.0 3124
## b[covid SPECIES_COMMON_NAME:WALLEYE_POLLOCK] 0.0 1.0 3639
## b[(Intercept) SPECIES_COMMON_NAME:WIDOW_ROCKFISH] 0.0 1.0 3089
## b[covid SPECIES_COMMON_NAME:WIDOW_ROCKFISH] 0.0 1.0 4593
## b[(Intercept) SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] 0.0 1.0 2667
## b[covid SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] 0.0 1.0 3792
## sigma 0.0 1.0 3318
## Sigma[year:(Intercept),(Intercept)] 0.0 1.0 1851
## Sigma[SPECIES_COMMON_NAME:(Intercept),(Intercept)] 0.0 1.0 1309
## Sigma[SPECIES_COMMON_NAME:covid,(Intercept)] 0.0 1.0 3576
## Sigma[SPECIES_COMMON_NAME:covid,covid] 0.1 1.0 2426
## mean_PPD 0.0 1.0 4086
## log-posterior 0.2 1.0 783
##
## For each parameter, mcse is Monte Carlo standard error, n_eff is a crude measure of effective sample size, and Rhat is the potential scale reduction factor on split chains (at convergence Rhat=1).
This summary output (sorry pretty ugly/volumous printout…) suggests that on average across species (log) landings were no different during the COVID lockdown (see coefficient for “covid” above: 0.2 [-2.3 - 2.6 95% CIs]) than would otherwise have been expected based on history of landings by gear type over the past decade. So I would interpret this as a lack of evidence for a COVID lockdown effect on groundfish landings in the Pacific Region.
We can also look at the species specific covid coefficients (random effects on slope) to see which species (if any) exhibited evidence of reductions in landings coincident with the COVID lockdown which may be maske by the overall distribution of responses. These species specific coefficients show no evidence for a COVID effect on individual species.
If we want a t-statistic associated with the COVID “effect” then we can also fit the model in a Maximum Likelihood framework using lmer. Looks like there is a singularity issue which means one or more of the varinces are estimated to be near/at zero, but covid coefficient is very similar to Bayesian model above so we cn probably ignore the singularity warning.
covid_model <- lmer(log(landed_kg)~0+gear+covid+(1|year)+(covid|SPECIES_COMMON_NAME), data = covid_period)
## boundary (singular) fit: see ?isSingular
summary(covid_model)
## Linear mixed model fit by REML ['lmerMod']
## Formula:
## log(landed_kg) ~ 0 + gear + covid + (1 | year) + (covid | SPECIES_COMMON_NAME)
## Data: covid_period
##
## REML criterion at convergence: 752.5
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.4196 -0.7629 0.1638 0.6934 1.9580
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## year (Intercept) 0.13998 0.3741
## SPECIES_COMMON_NAME (Intercept) 1.28190 1.1322
## covid 0.04432 0.2105 -1.00
## Residual 10.35079 3.2173
## Number of obs: 146, groups: year, 10; SPECIES_COMMON_NAME, 10
##
## Fixed effects:
## Estimate Std. Error t value
## gearBOTTOM TRAWL 10.4910 0.6392 16.414
## gearHOOK AND LINE 6.8688 0.7043 9.752
## gearMIDWATER TRAWL 9.5041 0.6470 14.689
## gearTRAP 8.4829 1.3720 6.183
## gearUNSPECIFIED 4.8281 0.9209 5.243
## covid 0.1203 0.9989 0.120
##
## Correlation of Fixed Effects:
## gBOTTT gHOOAL gMIDWT grTRAP gUNSPE
## gHOOKANDLIN 0.377
## gMIDWATERTR 0.369 0.351
## gearTRAP 0.162 0.189 0.129
## gUNSPECIFIE 0.266 0.225 0.256 0.130
## covid -0.175 -0.256 -0.279 -0.026 -0.037
## convergence code: 0
## boundary (singular) fit: see ?isSingular